home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / cli / cli_1_0u.lzh / COMMAND.TXT < prev    next >
Encoding:
Text File  |  1991-02-27  |  49.9 KB  |  1,482 lines

  1. Anleitung zum Kommandozeileninterpreter Version 1.0u
  2. (c) Oliver Scholz, Februar 1991
  3.  
  4. In eigener Sache
  5. ----------------
  6.  
  7. Lieber Benutzerin, lieber Benutzer!
  8.  
  9. Das vorliegende Programm ist SHAREWARE. Das bedeutet, daß es
  10. weiterkopiert werden kann und soll! Man kann es allen seinen Freunden
  11. weitergeben und die wieder ihren Freunden u.s.w.
  12. Es dürfen aber nur alle Dateien komplett kopiert werden, d.h.
  13.  
  14. COMMAND.PRG     Ausführbare Programmdatei
  15. COMMAND.TEX     LaTeX-Version dieser Anleitung
  16. COMMAND.TXT     ASCII-Version dieser Anleitung
  17. REVISION.TXT    Entwicklungsgeschichte
  18.  
  19. Es darf in den Dateien nichts verändert werden! Ausgenommen sind
  20. Layoutänderungen beim Ausdruck der Textdateien. Auf Wunsch kann bei
  21. mir auch noch eine englische Übersetzung der Textdateien bestellt
  22. werden.
  23.  
  24. Wer das Programm benutzt sollte mir 30 DM überweisen, als Anerkennung
  25. für meine Mühe. Damit werdet ihr automatisch registrierter Benutzer
  26. und könnt euch bei auftretenden Problemen und Fragen schriftlich an mich
  27. wenden. Registrierte Benutzer bekommen jederzeit gegen eine formatierte 3,5"
  28. Diskette und einen selbstadressierten, frankierten Rückumschlag die neueste
  29. Version.
  30.  
  31. Ohne mein (schriftliches) Einverständnis darf das Programm nicht in einen
  32. Public Domain Vetrieb aufgenommen werden. Denn wer für ein Programm schon
  33. 10-15 DM plus Porto und Nachnahme bezahlt hat, sieht nicht ein, sich auch
  34. noch für 30 DM registrieren zu lassen.
  35.  
  36. Dieses Programm ist im Laufe von eineinhalb Jahren 
  37. entstanden und ich habe unzählige Stunden daran gearbeitet.
  38. Darum möchte ich darum bitten, mir obigen Betrag auch zu überweisen,
  39. wenn ihr mit diesem Programm arbeitet.
  40.  
  41. Das Programm ist zu 100 Prozent in Assembler geschrieben. Das erklärt
  42. seine Geschwindigkeit, aber auch seine Kompaktheit. Schließlich sind
  43. über 60 Befehle eingebaut, d.h. es fallen bei diesen Befehlen keine Ladezeiten
  44. an.
  45. Und nicht jeder hat 2 oder 4 Megabytes und will davon über 100 KB für eine
  46. riesige, langsame Shell verbraten, nur weil diese in C geschrieben ist und sich
  47. enorme Hashtables anlegt. Der CLI ist unter 32K lang und reserviert sich auch
  48. nicht viel mehr. Nur einige KBytes für die Alias und Environments.
  49.  
  50. Mein Dank gilt hier Marcus, der diese Anleitung geTeXt und auch sonst
  51. mit konstruktiver Kritik nicht gespart hat.
  52.  
  53. Den Assembler, mit dem der CLI geschrieben ist, habe ich auch selbst
  54. entwickelt, und wenn das Sharewarekonzept klappt, mache ich den auch zu
  55. Shareware. Also noch ein Grund, sich registrieren zu lassen.
  56. Helft mit, das Sharewarekonzept zu einem Erfolg zu machen, wie in den USA.
  57.  
  58. Meine Bankverbindung:
  59.       
  60.                       Postgiroamt 2000 Hamburg
  61.                       Bankleitzahl 200 100 20
  62.                       Kontonummer 3457 42-203
  63.  
  64. Vergesst bitte nicht, euren Namen,Adresse und das Stichwort CLI mit auf
  65. das Überweisungsformular zu schreiben, sonst weiß ich nicht, woher das
  66. Geld gekommen ist.
  67.  
  68. Ihr könnt das Geld auch in einen Umschlag stecken:
  69.  
  70.                       Oliver Scholz
  71.                       Garstedter Weg 226
  72.                       Postfach 61 02 29
  73.                       2000 Hamburg 61
  74.  
  75. Meine Telefonnummer gebe ich am besten gar nicht erst an, weil ich ohnehin
  76. fast nie zuhause bin, und auch nicht morgens um sieben schon von den ersten
  77. Leuten aus dem Bett geholt werden möchte. Bitte versteht das.
  78.  
  79. Fast hätte ich's vergessen:
  80.  
  81. DISCLAIMER/HAFTUNGSAUSSCHLUSS:
  82.  
  83. Das Programm wurde sorgfältig entwickelt und getestet. Trotzdem sind, wie
  84. es bei Software üblich ist, Fehler nicht auszuschließen.
  85. Der Autor sieht sich daher gezwungen, darauf hinzuweisen, dass keine Garantie
  86. für das fehlerfreie Funktionieren dieses Programmes übernommen werden kann,
  87. noch für irgendwelche Schäden, die aus Fehlern im Programm oder durch Fehlbe-
  88. dienung entstehen, gehaftet wird.
  89.  
  90. Mit dem Starten des Programmes werden diese Bedingungen anerkannt.
  91. So, und jetzt viel Spass mit dem Programm.
  92.  
  93. Hamburg im Dezember 1990                                           Oliver Scholz
  94.  
  95.  
  96.  
  97. Einleitung
  98. ----------
  99.  
  100. Neben dem GEM-Desktop stellt ein Kommandozeileninterpreter (CLI) eine weitere 
  101. Möglichkeit dar, mit dem ST zu kommunizieren. Hierbei werden die Kommandos 
  102. nicht mit der Maus angewählt, sondern die Befehle mit Namen eingegeben.
  103.  
  104. Es werden dabei zwei verschiedene Arten von Befehlen unterschieden: 
  105. Residente und nichtresidente Befehle. Die residenten Befehle sind im CLI 
  106. eingebaut, d.h. sie stehen nach dem Laden unmittelbar zur Verfügung.
  107. Nichtresidente Befehle dagegen befinden sich auf Diskette bzw. Festplatte und 
  108. werden erst von dort geladen. Der Vorteil dabei ist, daß Befehle, die der
  109. CLI nicht enthält, selbst geschrieben werden können, und somit der CLI quasi 
  110. erweitert werden kann.
  111. Ein weiterer Vorteil eines CLI ist die Möglichkeit Batchdateien abzuarbeiten, 
  112. d.h. festgelegte Kommandofolgen mit einem Befehl abarbeiten zu lassen.
  113.  
  114. Die Benutzung der, vom TOS unterstützten, Environmentvariablen ist
  115. beim Arbeiten mit dem Desktop leider nicht möglich. Dies ist schade, denn
  116. sie bieten dem Benutzer u.a. die Möglichkeit seine persönliche
  117. Benutzerumgebung besser zu strukturieren. Ein weiterer Vorteil eines CLI ist
  118. also, daß eben diese Environmentvariablen problemlos definier- und
  119. ansprechbar sind.
  120.  
  121.  
  122. Das Arbeiten mit dem CLI
  123. ------------------------
  124.  
  125. Auch wenn zwischen residenten und nichtresidenten Befehlen unterschieden wird, 
  126. ist dieser Unterschied für den Benutzer kaum merklich. Erst wenn die Diskette 
  127. bzw. Festplatte anläuft, merkt man, daß ein Befehl nichtresident ist.
  128. Nach dem Starten meldet sich der CLI mit dem sogenannten Prompt, der z.B.
  129. so aussehen könnte: `C:>'.
  130. Wann immer der CLI diesen Prompt ausgibt, ist er bereit einen Befehl 
  131. entgegenzunehmen. Dieser Prompt kann aber auch umdefiniert werden. Siehe
  132. dazu Abschnitt 'PROMPT'.
  133.  
  134. Eine Kommandozeile besteht aus einem Befehl und optionalen Parametern, die 
  135. voneinander durch ein oder mehrere Leerzeichen getrennt sind. Zunächst testet 
  136. der CLI, ob es sich bei dem Befehl um einen residenten Befehl handelt. Ist das 
  137. der Fall, so wird der Befehl sofort ausgeführt. Handelt es sich jedoch um
  138. einen nicht eingebauten Befehl, so wird auf dem aktuellen Verzeichnis nach
  139. einer Datei gleichen Namens gesucht, und diese geladen.
  140. Wurde keine Extension angegeben, so versucht der CLI zunächst die Extension 
  141. '.PRG', dann der Reihe nach '.TOS', '.TTP', '.APP' und schließlich '.BAT'.
  142. Hatte keiner dieser Versuche Erfolg, so wird die Meldung 
  143.  
  144. 'Command or File not found!'
  145.  
  146. ausgegeben. Ist die Environmentvariable PATH vorhanden, so werden auch die
  147. darin angegebenen Pfade durchsucht, bevor die Meldung ausgegeben wird.
  148. Groß-/Kleinschreibung spielt bei der Befehlseingabe übrigens keine Rolle.
  149.  
  150.  
  151. Die HOME-Abkürzung in Pfaden
  152. -----------------------------
  153.  
  154. Das Tilde-Zeichen ('~') in einem Pfad steht für das Homedirectory
  155. des jeweiligen Benutzers. Der CLI ersetzt dieses Zeichen also durch den
  156. Inhalt der Environmentvariablen HOME. Zum Beispiel:
  157.  
  158.   cp tst.txt  ~\txt\
  159.  
  160. wäre gleichbedeutend mit
  161.  
  162.   cp tst.txt $HOME\txt\
  163.  
  164. oder, wenn HOME=e:\usr\olav\, auch
  165.  
  166.   cp tst.txt e:\usr\olav\txt\
  167.  
  168.  
  169. Wildcards und Dateinamen unter TOS
  170. ----------------------------------
  171.  
  172. Wenn im folgenden von wildcards die Rede ist, so ist damit
  173. die Möglichkeit gemeint, Dateinamen unvollständig zu spezifizieren.
  174. Einzelne Zeichen in Dateinamen können gegen ein Fragezeichen (`?')
  175. und ganze Zeichenketten durch einen Stern (`*') ersetzt werden.
  176. Dabei besteht ein Dateiname aus 8 Zeichen plus 3 optionalen, durch einen
  177. Punkt getrennten Zeichen, auch Extension genannt. Also beispielsweise
  178. filename.ext.
  179.  
  180. Es ist jedoch zu beachten, wie die beiden Wildcard-Zeichen von TOS
  181. interpretiert werden. Wird in einem Dateinamen ein Stern verwendet, so
  182. füllt TOS bis zum Punkt mit Fragezeichen auf, d.h. alle Zeichen nach einem
  183. Stern bis zum Punkt werden ignoriert!
  184.  
  185. Besondere Vorsicht bei der Verwendung von Wildcards ist also bei 
  186. Löschoperationen geboten. Fatale Folgen könnte folgende Anweisung haben:
  187.  
  188.   rm *abc.*
  189.  
  190. TOS interpretiert dies als
  191.  
  192.   rm *.*
  193.  
  194. Was das bedeuten kann, ist wohl jedem klar. Also Vorsicht!!!
  195.  
  196.  
  197. Batchdateien
  198. ------------
  199.  
  200. Eine Batchdatei dient dazu, eine oft benutzte Befehlsfolge zu automatisieren. 
  201. Soll z.B. die Befehlsfolge 
  202.  
  203.   date
  204.   time
  205.  
  206. zusammen ausgeführt werden, so schreibt man mit einem Editor eine Textdatei,
  207. die in der ersten Zeile 'date' und in der zweiten Zeile 'time' enthält. 
  208. Nennt man diese Datei z.B. DATETIME.BAT, so wird bei Eingabe von 'datetime.bat'
  209. automatisch die Befehlsfolge 'date time' ausgeführt. Es ist auch möglich, einer 
  210. Batchdatei max. 10 Parameter zu übergeben. Die Parameter werden in der 
  211. Kommandozeile durch Leerzeichen voneinander getrennt. Der erste Parameter 
  212. heißt %1, der zweite %2, u.s.w. und der zehnte %0. Taucht in der 
  213. Batchdatei dann %1 auf, so wird %1 durch den Parameter in der
  214. Kommandozeile ersetzt. 
  215. Soll das '%' dargestellt werden, so wird es einfach verdoppelt: '%%'. Lautet 
  216. die Batchdatei 'TEST.BAT' etwa: 'echo %1', so bewirkt die Kommandozeile
  217. 'test Hallo', daß auf dem Bildschirm 'Hallo' ausgegeben wird.
  218.  
  219. Mit Batchdateien lassen sich z.B. Compiler-/Linkerläufe automatisieren:
  220.  
  221.   compiler %1.c %1.o
  222.   linker %1.prg=startup,%1.o,lib
  223.  
  224. Wird diese Batchdatei 'C.BAT' genannt, so bewirkt 'c test', daß die 
  225. Befehlsfolge
  226.  
  227.   compiler test.c test.s
  228.   linker test.prg=startup,test.o,lib
  229.  
  230. abgearbeitet wird. Als besonderer Clou kann der CLI auch selbst eine 
  231. Kommandozeile übernehmen. 
  232. Diese kann dann z.B. der Name einer Batchdatei sein, die nach dem Starten 
  233. des CLI automatisch abgearbeitet wird. Damit ist es vom Desktop aus
  234. z.B. möglich, COMMAND.PRG als Anwendung anzumelden, und zwar mit der
  235. Extension '.BAT'. Wird dann 'C.BAT' doppelt angeklickt, so startet der
  236. CLI automatisch und arbeitet die entsprechende Batchdatei ab.
  237.  
  238. Wird keine Kommandozeile angegeben, so sucht der CLI nach einer Batchdatei 
  239. 'AUTOEXEC.BAT', die, sofern vorhanden, ebenfalls automatisch abgearbeitet 
  240. wird. In dieser Datei kann man den CLI nach eigenen Wünschen einstellen, z.B. 
  241. mit 'prompt &p&g' wird der Prompt so eingestellt, daß er das aktuelle 
  242. Laufwerk und Pfad gefolgt vom '>' ausgibt.
  243.  
  244. Des weiteren ist es möglich, rekursive Batchdateien zu verwenden, d.h. eine 
  245. Batchdatei kann eine weitere Batchdatei aufrufen, aber maximal fünf Mal.
  246. Dabei kann auf Parameter übergeordneter Batchdateien zugegriffen werden.
  247.  
  248.  
  249. Ein- /Ausgabe Umleitung
  250. -----------------------
  251.  
  252. Die Ausgabe aller eingebauten Befehle erfolgt normalerweise auf den 
  253. Bildschirm, aber es kann manchmal gewünscht sein, Ausgaben auf den Drucker 
  254. oder in eine Datei auszugeben.
  255.  
  256. Dazu wird an das Ende der eigentlichen Kommandozeile '>dateiname'
  257. angefügt. 
  258. Damit wird eine Datei 'dateiname' angelegt und die Ausgabe des Befehls in 
  259. diese Datei geschrieben. Als Dateiname sind hier auch 'AUX:' und 'PRN:' 
  260. zulässig. Damit kann die Ausgabe auch auf den Drucker bzw. die serielle 
  261. Schnittstelle umgelenkt werden. Ist die Datei 'dateiname' schon vorhanden,
  262. so wird sie gelöscht, und eine neue Datei eröffnet. Soll an eine bestehende 
  263. Datei angehängt werden, so wird statt '>dateiname' der Befehl 
  264. '>>dateiname' an die Kommandozeile angehängt.
  265.  
  266. Es ist auch möglich die Eingabe von einer Datei vorzunehmen. Dazu wird an die 
  267. Kommandozeile '<dateiname' angehängt. Hier ist wieder auch
  268. 'AUX:' zugelassen, nicht aber 'PRN:'.
  269.  
  270. Benutzt ein Programm die Fehlerausgabe (stderr), so kann auch diese
  271. umgeleitet werden, und zwar mit '2>dateiname' bzw. '2>>dateiname'.
  272. Hier sind ebenfalls 'AUX:', 'PRN:' und 'CON:' zulässig.
  273.  
  274. Allerdings funktioniert die I/O-Umlenkung nicht bei allen TOS-Versionen 
  275. fehlerfrei. Erst ab TOS Version 1.4 klappt alles fehlerfrei.
  276.  
  277. Pipes
  278. -----
  279.  
  280. Eine Pipe ist ein sehr angenehmes Mittel zur Kommunikation zwischen
  281. verschiedenen Programmen. Oft ist es gewünscht, die Ausgabe eines Programmes
  282. mit einem anderen Programm weiterzuverarbeiten. Eine Pipe gibt die Ausgabe,
  283. die ein Programm oder Befehl auf den Bildschirm (eigentlich 'stdout')
  284. schreiben will, an ein anderes Programm weiter, das diese Ausgabe als
  285. Eingabe akzeptiert. Eine Pipe ist also eine Art gleichzeitige Ausgabe- und
  286. Eingabeumlenkung mit verschiedenen Programmen.
  287. Das Zeichen, das diese Umlenkung vornimmt, ist der senkrechte Strich ('|').
  288. Soll z.B. die Fehlerliste eines C-Compilers auf eine Datei umgelenkt werden,
  289. so kann diese recht lang werden, und meist hängt ein Großteil der Fehler
  290. vom ersten Fehler ab. So kann man die Ausgabe durch eine Pipe an
  291. HEAD schicken, der nur die ersten paar Fehlermeldungen ausgibt:
  292.  
  293.   compiler | head -25
  294.  
  295. So schreibt der Compiler nur noch die ersten 25 Fehlermeldungen auf den
  296. Bildschirm. Man kann diese Ausgabe nun weiter in eine Datei umlenken:
  297.  
  298.   compiler | head -25 >errors
  299.  
  300. Nun enthält 'errors' die ersten 25 Fehlermeldungen. Sollen die Fehlermeldungen
  301. nur seitenweise ausgegeben werden und der Compiler hält nicht an, so kann
  302. die Ausgabe an MORE geschickt werden:
  303.  
  304.   compiler | more
  305.  
  306. Nun erfolgt die Ausgabe seitenweise, als hätte man:
  307.  
  308.   compiler >temp
  309.   more temp
  310.   del temp
  311.  
  312. eingegeben. Damit diese Umleitung funktioniert muß die Ausgabe die in eine
  313. Pipe geschickt werden soll natürlich auch umlenkbar sein, d.h. das Programm
  314. muß seine Ausgaben auf 'stdout' machen.
  315.  
  316. Sollen mehrere Befehle in einer Kommandozeile ausgeführt werden, ohne daß
  317. eine Pipe geöffnet wird, so müssen diese jeweils durch Semikolon getrennt
  318. werden.
  319.  
  320. Die Befehls Stopuhr
  321. -------------------
  322.  
  323. Wird eine Kommandozeile mit einem 'Klammeraffen' (@) begonnen, so wird eine
  324. interne Stopuhr gestartet und die Zeit zur Ausführung der Zeile
  325. gestoppt. So kann bequem bestimmt werden, wie lange z.B. ein
  326. Compiliervorgang dauert.
  327.  
  328.  
  329. Die History-Funktion
  330. --------------------
  331.  
  332. Der CLI merkt sich immer die letzten 20 Befehlszeilen, und diese können über 
  333. die Cursortasten (auf/ab) wieder abgerufen werden. Das ist sinnvoll, wenn man 
  334. einen zuvor benutzten Befehl noch einmal benutzen möchte, ohne ihn neu 
  335. eingeben zu müssen.
  336.  
  337. Diese Befehle können auch ggf. editiert werden. Eine weitere Möglichkeit,
  338. die letzten Befehle zu sehen und 
  339. auszuführen, ist der Befehl HISTORY. Damit werden die letzten Befehle 
  340. ausgegeben und jeweils mit einer Nummer versehen. Mittels Ausrufezeichen 
  341. können diese Befehle nun angesprochen werden, und zwar auf zwei verschiedene
  342. Arten:
  343.  
  344.   o '!5', würde z.B. den 5. Befehl ausführen, der nach Starten
  345.     des CLIs eingegeben wurde, sofern sich dieser Befehl noch im
  346.     History-Puffer befindet.
  347.  
  348.   o '!cc' würde den letzten Befehl, der mit 'cc' beginnt und
  349.     sich noch im History-Puffer befindet, ausführen.
  350.  
  351.  
  352. Editieren der Eingabezeile
  353. --------------------------
  354.  
  355. Eingegebene Zeichen werden dort eingefügt, wo sich der Cursor befindet. Sind 
  356. noch Zeichen rechts vom Cursor, so werden diese Zeichen nach rechts 
  357. verschoben.
  358.  
  359. Die Befehle, die zum Editieren der Kommandozeile zur Verfügung stehen, zeigt
  360. Tabelle 1. Eine genauere Erläuterung verlangt wohl die Dateinamensuche:
  361.  
  362. Es ist manchmal ganz hilfreich, dem Rechner die Suche nach einem
  363. komplizierten Dateinamen zu überlassen. Dazu gibt man eine unvollständige
  364. Dateinamenspezifikation an und drückt entweder die Insert-Taste oder
  365. die Tastenkombination Ctrl-U (unknown). Nun durchsucht der CLI
  366. das aktuelle Verzeichnis nach dem ersten Eintrag, der auf die angegebene
  367. Spezifikation paßt und gibt ihn auf dem Schirm aus. Ist dies nicht der
  368. gewünschte Eintrag, so kann man die Suche mit der Tastenkombination
  369. Ctrl-O (other) fortführen. Kann kein weiterer Eintrag mehr
  370. gefunden werden, so bleibt der letzte gefundene Eintrag in der Kommandozeile
  371. stehen.
  372.  
  373. Da das links vom Cursor stehende Wort als Suchspezifikation benutzt
  374. wird, bewirkt zweimaliges Drücken der Insert-Taste bzw. Ctrl-U, daß der
  375. erste gefundene Dateiname mit dem zweiten Drücken als, nun vollständige,
  376. Suchspezifikation interpretiert wird. Dadurch wird i.d.R. bei weiterer
  377. Suche mittels Ctrl-O kein anderer Dateiname mehr gefunden.
  378.  
  379. Folgendes Beispiel soll diese sinnvollen Befehle verdeutlichen:
  380.  
  381. Oft möchte man eine Datei löschen, will aber nicht den gesamten Namen
  382. eingeben. Angenommen, das aktuelle Verzeichnis enthält die folgenden Dateien:
  383.  
  384. BLAH.TXT
  385. BLAH1.TXT
  386. BLAH2.TXT
  387.  
  388. Gesetzt den Fall, man möchte BLAH1.TXT löschen. Nun reicht es
  389. beispielsweise aus, wenn man folgende Kommandozeile eingibt (ohne die
  390. RETURN Taste zu betätigen):
  391.  
  392. del bl
  393.  
  394. Drückt man nun die Insert-Taste (oder Ctrl-U) so würde die unvollständige
  395. Spezifikation 'bl' durch 'blah.txt' ersetzt werden.
  396. (In diesem Fall wäre ein Leerzeichen als Spezifikation auch ausreichend
  397. gewesen) Führt man die Suche nun mit Ctrl-O fort, so wird als nächstes
  398. BLAH.TXT durch die gesuchte Datei BLAH1.TXT ersetzt und man kann die
  399. erwünschte Kommandozeile durch Betätigung der RETURN Taste an den CLI
  400. weitergeben. Ähnlich läßt sich diese Suche auch bei anderen Befehlen anwenden.
  401. Auf vielfachen Wunsch wird der gefundene Dateiname ab Version 1.0t in
  402. Kleinbuchstaben eingefügt.
  403.  
  404.  
  405.  
  406.         Taste         |         Wirkung
  407. -------------------------------------------------------------------------
  408.         Pfeil links   | bewegt den Cursor nach links
  409.         Pfeil rechts  | bewegt den Cursor nach rechts
  410.         Backspace     | löscht das Zeichen links vom Cursor
  411.         Delete        | löscht das Zeichen unter dem Cursor
  412.         Insert        | Starte Dateinamensuche
  413.         Clr/Home      | löscht die aktuelle Kommandozeile
  414.         Ctrl-K        | löscht bis zum Ende der Kommandozeile
  415.         Ctrl-W        | löscht das nächste Wort
  416.         Ctrl-A        | springt an den Anfang der Kommandozeile
  417.         Ctrl-E        | springt an das Ende der Kommandozeile
  418.         Ctrl-U        | wie Insert (unknown)
  419.         Ctrl-O        | Nächster Eintrag bei Dateinamensuche (other)
  420.         Ctrl-D        | wie Delete
  421.         Ctrl-X        | wie Clr/Home
  422.         Ctrl-B        | wie Pfeil links  (backward)
  423.         Ctrl-F        | wie Pfeil rechts (forward)
  424.         Ctrl-P        | wie Pfeil hoch   (previous)
  425.         Ctrl-N        | wie Pfeil runter (next)
  426. -------------------------------------------------------------------------
  427.  
  428.             Tabelle 1: Befehle zum Editieren der Kommandozeile
  429.  
  430.  
  431.  
  432. Environmentvariablen
  433. --------------------
  434.  
  435. Das Betriebssystem TOS ermöglicht es, sogenannte Environmentvariablen zu 
  436. übergeben. In diesen Variablen können z.B. Suchpfade oder andere 
  437. Systemeinstellungen gespeichert werden. So kann bei manchen C-Compilern 
  438. festgelegt werden, wo sich die Include-Dateien befinden.
  439. Eine Environmentvariable wird definiert, indem ihr ein neuer Inhalt 
  440. zugewiesen wird. Ist sie schon vorhanden, wird der vorhandene Inhalt gelöscht 
  441. und durch den neuen Inhalt ersetzt.
  442.  
  443. Nach dem Starten existiert in der Regel nur eine Variable, nämlich PATH. 
  444. Diese Variable legt fest, wo der CLI nichtresidente Befehle sucht, wenn er sie 
  445. im aktuellen Verzeichnis nicht findet.
  446. Der CLI legt nun zu dieser vom TOS belegten Variable einige weitere Variablen 
  447. an, und zwar HOME, CWD, STATUS, DATE, TIME und u.U. USERNAME und USER.
  448.  
  449. In HOME wird das Verzeichnis vermerkt, in dem der CLI gestartet wurde. In CWD 
  450. befindet sich immer das aktuelle Verzeichnis (current working directory),
  451. und in STATUS wird der Exit-Code des letzten gestarteten Programmes vermerkt.
  452. 'STATUS=-33' z.B. bedeutet, daß die angegebene Datei nicht gefunden wurde.
  453. DATE und TIME enthalten nach Aufruf der Befehle DATE bzw. TIME
  454. unter Angabe der '-s' Option, das Systemdatum bzw. die Systemzeit zum 
  455. Zeitpunkt des Aufrufes.
  456.  
  457. USER wird von der LOGIN-Funktion angelegt und in 'LOGIN' erläutert.
  458. Es ist nun praktisch, alle ausführbaren externen Befehle in einen Ordner zu 
  459. kopieren, und dem CLI diesen Pfad mitzuteilen. Befindet sich dieser Ordner 
  460. nun z.B. im Wurzelverzeichnis von Laufwerk C: und heißt 'BIN', so bewirkt
  461.  
  462.   PATH=C:\,C:\BIN\
  463.  
  464. daß nichtresidente Befehle zunächst im aktuellen Verzeichnis, dann im 
  465. Wurzelverzeichnis von 'C:' und dann im Ordner 'BIN' auf Laufwerk 'C:' gesucht 
  466. wird. Bei der PATH Variable können auch mehrere Pfade angegeben werden, diese 
  467. müssen dann durch Kommata getrennt werden.
  468. Variablen können aber auch in Befehlen verwendet werden. Um den Inhalt einer 
  469. Variablen zu benutzen, wird ihr ein Dollar-Zeichen ('$') vorangestellt, mit
  470.  
  471.   TEMP=$CWD
  472.  
  473. speichert man das aktuelle Verzeichnis in der Variablen TEMP ab. Zu einem 
  474. späteren Zeitpunkt kann dann mit 
  475.  
  476.   cd $TEMP
  477.  
  478. wieder in dieses Verzeichnis gelangen. (Eine einfachere Möglichkeit, sich
  479. ein Directory zu merken, bieten die Befehle PUSHD/POPD).
  480.  
  481. Weitere Möglichkeiten bieten auch die Befehle PRINTENV, SETENV und ADDENV.
  482.  
  483. Das Plus-Zeichen ('+') ermöglicht es, mit diversen Befehlen auf
  484. konkatenierte Environmentvariablen zuzugreifen. Ein Beispiel sollte
  485. erklären, was damit gemeint ist:
  486.  
  487.   del $HOME+$MYFILE
  488.  
  489. löscht die Datei, die in MYFILE enthalten ist, auf dem Pfad, der in
  490. HOME steht. D.h., die Inhalte der Variablen HOME und MYFILE werden
  491. aneinandergehängt und von der Kommandozeile übernommen.
  492.  
  493.  
  494. Benutzung des CLI durch Programme
  495. ---------------------------------
  496.  
  497. Der CLI unterstützt auch die GEMDOS-Variable _shell_p bei Adresse $4F6,
  498. hexadezimal. Dadurch wird es möglich, daß ein Programm das vom CLI
  499. aufgerufen wurde, dem CLI eine Kommandozeile zur Ausführung übergibt.
  500. Ein Beispiel dafür ist der system() Befehl einiger C-Compiler. Schreibt
  501. man z.B. ein MAKE-Programm so muß man nicht den RM Befehl abfangen,
  502. sondern schickt ihn einfach mittels system() an den CLI, und läßt ihn
  503. dort ausführen.
  504.  
  505. Der CLI und MiNT
  506. ----------------
  507.  
  508. Der CLI erkennt die Anwesenheit von MiNT im Speicher und berücksichtigt das
  509. bei einigen Befehlen; so werden UID und GID beim Login automatisch gesetzt.
  510. Der VER Befehl erkennt die MiNT Version und gibt sie mit aus. DIR akzeptiert
  511. die Pseudolaufwerke Q:, V: und X:. WAIT benutzt den S_Yield() Systemcall.
  512. Als neuer Befehl gibt PS die Prozeßtabelle aus. Schließlich wird Multitasking
  513. unterstützt, indem ein Programm im Hintergrund gestartet wird, wenn das erste
  514. Zeichen einer Zeile das '&' Zeichen ist.
  515.  
  516. Das ARGV-Schema
  517. ---------------
  518.  
  519. Der CLI unterstützt das neue ARGV-Protokoll, um Programmen u.a. den Zugriff
  520. auf den eigenen Namen zu ermöglichen (ARGV[0]). Leider vertragen sich einige
  521. Programme nicht mit dem neuen Protokoll. Daher kann man es mit einer neuen
  522. Environment Variablen ein- und ausschalten. Ist die Variable N127 vorhanden, 
  523. so ist das ARGV Protokoll eingeschaltet. Der zugewiesene Wert ist dabei 
  524. gleichgültig. Ist sie nicht vorhanden, so wird das Protokoll nicht unterstützt.
  525.  
  526.  
  527. Die Befehle
  528. -----------
  529.  
  530. Hier sollen nun die einzelnen eingebauten Befehle des CLI vorgestellt und 
  531. erläutert werden.
  532.  
  533. ADDENV
  534. ------
  535.  
  536. Syntax: ADDENV varname string
  537.  
  538. Mit ADDENV kann an eine Environmentvariable etwas angehängt werden.
  539. 'varname' ist dabei der Name der Variable, und 'string' wird
  540. (durch ein Komma getrennt) and den Inhalt der Variable angehängt.
  541. Ein Beispiel:
  542.  
  543.   addenv PATH $HOME
  544.  
  545. Nun würde auch das HOME-Verzeichnis mit in die Suche nach externen Befehlen 
  546. einbezogen.
  547.  
  548. ALIAS
  549. -----
  550.  
  551. Syntax: ALIAS [ [-d] string1 string2 ]
  552.  
  553. Mit ALIAS kann man die Zeichenkette 'string2' der Zeichenkette 'string1'
  554. zuweisen. D.h., gibt man nach einer ALIAS-Zuweisung, nach obiger Syntax,
  555. in der Kommandozeile string1 ein, so versucht der CLI 'string2' auszuführen.
  556. So bewirkt z.B.
  557.  
  558.   alias d dir
  559.  
  560. dass `d' als Befehl erkannt wird und wie der DIR-Befehl wirkt.
  561.  
  562. Wird die `-d' (delete) Option angegeben, so wird die entsprechende
  563. Zeichenkette aus der Alias-Liste entfernt.
  564.  
  565.   alias -d d
  566.  
  567. macht also die eben gemachte Zuweisung rückgängig.
  568.  
  569. Wird ALIAS ohne Parameter angegeben, wird die Liste der definierten Befehle 
  570. ausgegeben.
  571.  
  572.  
  573. BAUD
  574. ----
  575.  
  576. Syntax: BAUD baudrate,word size,parity,stop bits
  577.  
  578. Mit dem BAUD-Befehl kann die serielle Schnittstelle des ST (RS-232)
  579. konfiguriert werden. Zunächst wird die Baudrate angegeben, dann die Anzahl
  580. der Datenbits, gefolgt von der Parität (n,o,e für none, odd, even Parität)
  581. und schliesslich die Anzahl der Stopbits.
  582.  
  583. Mit: 
  584.  
  585.   baud 300,8,n,1
  586.  
  587. wird also z.B. die Schnittstelle auf 300 Baud, keine Parität, 8 Datenbits
  588. und ein Stopbit eingestellt.
  589.  
  590.  
  591. CD oder CHDIR
  592. -------------
  593.  
  594. Syntax: CD [pathname] oder CHDIR [pathname]
  595.  
  596. Mit CD (change directory) wird ein neues aktuelles Verzeichnis gewählt. 
  597. Normalerweise wird der angegebene Ordnername an den aktuellen Pfad angehängt.
  598. Die Abkürzung '..' bezieht sich auf das nächste übergeordnete Verzeichnis.
  599. Ist der aktuelle Pfad z.B. C:\TEMP\COMP\ und wird das Kommando 'cd ..'
  600. eingegeben, so wechselt das aktuelle Verzeichnis auf C:\TEMP\.
  601. Es kann aber auch ein kompletter neuer Pfad eingegeben werden, 
  602. z.B. 'cd e:\' oder 'cd a:\test\'.
  603. Wird kein Parameter angegeben, so wechselt CD in das HOME-Verzeichnis.
  604.  
  605. Der CLI bietet hier dem Benutzer die Möglichkeit, Pfadnamen mittels Wildcards
  606. anzugeben.
  607. Es werden einfach die signifikanten Zeichen eines Pfadnamens, gefolgt vom
  608. Asterisk-Zeichen ('*') angegeben. Der CLI ergänzt dann zum 
  609. vollständigen Pfadnamen. Angenommen das aktuelle Verzeichnis sei C:\
  610. und es gibt ein Unterverzeichnis \SOURCE\, in welches man wechslen möchte.
  611. Dann würde man vielleicht folgenden Befehl verwenden:
  612.  
  613.   cd sou*
  614.  
  615. Damit wird der CLI in das Verzeichnis C:\SOURCE\TEST\ wechseln.
  616.  
  617. CHMOD
  618. -----
  619. Syntax: CHMOD [+|-][r|h|s|a] dateiname
  620.  
  621. Mit diesem Befehl können die Dateiattribute verändert werden, ähnlich wie
  622. LOCK/UNLOCK etc. Jedes einzelne Attribut kann mit einem Befehl gezielt
  623. gesetzt oder gelöscht werden, z.B.:
  624.  
  625. chmod +r-sh test.txt
  626.  
  627. setzt das 'read-only' Attribut und löscht die 'system' und 'hidden'
  628. Attribute, und wirkt so wie
  629.  
  630. lock test.txt
  631. hide test.txt
  632.  
  633.  
  634. CLICK
  635. -----
  636. Syntax: CLICK [ON|OFF]
  637.  
  638. CLICK OFF schaltet den Tastaturklick ab, CLICK ON schaltet ihn wieder ein.
  639.  
  640. CLS
  641. ---
  642.  
  643. Syntax: CLS
  644.  
  645. Der Befehl CLS (clear screen) löscht den Bildschirm. Es werden dazu
  646. die Terminalsequenzen eines DEC VT-52 Terminals verwendet
  647. (also: ESC-H-ESC-J).
  648.  
  649.  
  650. COPY oder CP
  651. ------------
  652.  
  653. Syntax: COPY [-ns] pathname [pathname] oder
  654.         CP   [-ns] pathname [pathname]
  655.  
  656. Mit dem Befehl COPY, bzw. CP kann eine Kopie einer Datei in einem anderen 
  657. Verzeichnis oder Laufwerk angelegt werden. Hierbei sind Wildcards erlaubt.
  658. Ist im Zielpfad bereits eine Datei gleichen Namens vorhanden, fragt der
  659. CLI nach, ob diese gelöscht werden soll, oder ob man die Kopieranweisung
  660. abbrechen will. Wird kein Zielpfad angegeben, so ist der aktuelle Pfad
  661. Zielpfad der Operation. Das Dateidatum bleibt hierbei erhalten. Um die
  662. Kopie mit dem aktuellen Systemdatum zu versehen, siehe TOUCH Befehl.
  663. Einige Beispiele:
  664.  
  665. - COPY *.TXT A:\
  666.     kopiert alle Dateien, die auf '.TXT' enden aus dem aktuellen 
  667.     Verzeichnis auf Laufwerk A:
  668.  
  669. - COPY *.TXT C:\*.DOC
  670.     kopiert alle Dateien, die auf '.TXT' enden auf
  671.     Laufwerk C und benennt sie gleichzeitig in '.DOC' um.
  672.  
  673. - COPY HALLO.TXT TEST.DOC
  674.     legt eine Kopie der Datei HALLO.TXT an und nennt sie TEST.DOC.
  675.  
  676. Mit der Option '-n' (no query) wird die Nachfrage abgeschaltet, ob eine im
  677. Zielpfad schon vorhandene Datei gleichen Namens überschrieben werden soll
  678. oder nicht. Die Option `-s' (silent) bewirkt, daß der Kopiervorgang
  679. nicht auf dem Schirm mitprotokolliert wird.
  680.  
  681.  
  682. CTTY
  683. ----
  684.  
  685. Syntax: CTTY device
  686.  
  687. Mit dem Befehl CTTY (change TTY) wird dem CLI mitgeteilt, daß nun alle
  688. Ausgaben und Eingaben der internen Befehle über die serielle Schnittstelle
  689. AUX: oder über dir Konsole CON: abgewickelt werden sollen.
  690. Damit ist der CLI fernbedienbar. Bei Betrieb über die serielle Schnittstelle
  691. wird ab Version 1.0t weiterhin die Ausgabe auf den Bildschirm ausgegeben.
  692. Der Remotebetrieb ist dabei von der Konsole aus abbrechbar.
  693.  
  694.  
  695. DATE
  696. ----
  697.  
  698. Syntax: DATE [-s]
  699.  
  700. Mit dem DATE Befehl kann das Systemdatum abgefragt und gestellt werden. Nach 
  701. Eingabe von DATE wird das aktuelle Datum ausgegeben. Nun kann ein neues Datum 
  702. eingegeben werden. Wird stattdessen ein ungültiges Datum angegeben oder
  703. einfach nur die <RETURN>-Taste betätigt, bleibt das Datum unverändert.
  704. Bei Angabe der '-s' Option (set) wird das aktuelle Datum im Format
  705.  
  706.  Wochentag ,  Tag .   Monat  Jahr
  707.  
  708. in die Environmentvariable DATE geschrieben.
  709.  
  710.  
  711. DEL
  712. ---
  713.  
  714. Syntax: DEL [-qs] {filename}
  715.  
  716. Löscht die angegebene Datei. Es können auch Wildcards ('*')
  717. angegeben werden, aber dabei ist Vorsicht geboten! Man löscht sich nur 
  718. allzuleicht Daten, die man nicht löschen wollte! So löscht 
  719.  
  720.   del *.prg
  721.  
  722. alle Dateien im aktuellen Verzeichnis, die die Extension `.PRG' besitzen.
  723. Siehe hierzu auch unbedingt Abschnitt `Wildcards und Dateinamen unter TOS'.
  724. Gibt man jeden Namen einzeln an und/oder nutzt die '-q' (query, Nachfrage)
  725. Option, geht man auf Nummer sicher.
  726.  
  727. DEL und seine Equivalente RM und ERA geben eine englische Meldung aus, was
  728. gelöscht wird. Ist diese englische Meldung in einer Batchabarbeitung 
  729. störend, so kann diese auch mit der '-s' Option (silent) unterdrückt
  730. werden.
  731.  
  732.  
  733. DELENV
  734. ------
  735.  
  736. Syntax: DELENV varname
  737.  
  738. Mit diesem Befehl kann die Environmentvariable 'varname' gelöscht
  739. werden. Dieser Befehl stellt also das Komplement zu SETENV dar.
  740.  
  741.  
  742. DIR
  743. ---
  744.  
  745. Syntax: DIR [-aepw] [pathname]
  746.  
  747. Der Inhalt des angegebenen Pfades, oder, wenn kein Pfad angegeben ist, der 
  748. Inhalt der aktuellen Directories wird ausgegeben. Normalerweise werden
  749. Dateien, bei denen das Hidden- oder System-Attribut gesetzt ist,
  750. nicht mit ausgegeben.
  751.  
  752. Wird jedoch die '-a' Option (all) angegeben, so werden auch diese Dateien
  753. mit ausgegeben.
  754. Mit der '-e' Option (extended) werden auch die Attribute 'read-only',
  755. 'system' und 'hidden' mit ausgegeben. Ist das Attribut gesetzt, so 
  756. erscheint der Buchstabe 'r','h' oder 's' und wenn das Attribut gelöscht ist, 
  757. erscheint ein '-'. Mit der '-p' Option (pause) wird auf einen Tastendruck 
  758. gewartet, sobald eine volle Seite ausgegeben wurde.
  759. Mit der '-w' Option (wide) werden 6 Dateinamen pro Zeile ausgegeben, dafür 
  760. aber ohne Länge, Datum und Uhrzeit.
  761.  
  762.  
  763. DUMP
  764. ----
  765.  
  766. Syntax: DUMP [-sHEXOFFSET] filename
  767.  
  768. Dieser Befehl gibt einen Hexdump der angegebenen Datei aus. Wird als Option
  769. ein Offset angegeben, so wird die Datei erst ab diesem Offset ausgegeben.
  770. Beispiel:
  771.  
  772.   dump -s2E test.txt
  773.  
  774.  
  775. ECHO
  776. ----
  777.  
  778. Syntax: ECHO [ON|OFF|string]
  779.  
  780. Die auf diesen Befehl folgende Zeile wird, normalerweise, auf dem Bildschirm
  781. ausgegeben. Dieser Befehl wird gerne in Batchdateien verwendet um Meldungen
  782. auf dem Bildschirm auszugeben. Man kann ihn aber auch dazu benutzen, um eine
  783. kleine Textdatei zu erstellen, und das geht so:
  784.  
  785. Die erste Zeile der Batchdatei wird mit '>dateiname' in eine Datei umgeleitet.
  786. Alle weiteren Zeilen werden mit '>>dateiname' an die bestehende Datei
  787. angehängt.
  788. Dieses Verfahren ist allerdings ziemlich aufwendig und nur dann sinnvoll, wenn
  789. eine kleine Datei schnell erstellt werden soll und kein Texteditor zur
  790. Verfügung steht.
  791. Auch Sonderzeichen können mit Echo ausgegeben werden. Dazu muß anstelle 
  792. des Sonderzeichens '&hh' angegeben werden, wobei 'hh' hierbei der
  793. Hexcode des Sonderzeichens ist.
  794.  
  795. ECHO besitzt noch eine weitere Funktion; mit ihm kann festgelegt werden, ob
  796. bei der Abarbeitung einer Batch-Datei die einzelnen Befehle ausgegeben werden
  797. oder nicht. Grundeinstellung ist ECHO OFF. Mit ECHO ON schaltet man die
  798. Ausgabe ein. Wird nur ECHO eingegeben, wird der aktuelle ECHO-Status abgefragt.
  799.  
  800.  
  801. ERA
  802. ---
  803.  
  804. Syntax: ERA [-qs] {filename}
  805.  
  806. Ist equivalent zu DEL.
  807.  
  808.  
  809. EXIT
  810. ----
  811.  
  812. Syntax: EXIT
  813.  
  814. Dieser Befehl beendet den CLI und kehrt zum aufrufenden Programm zurück, und 
  815. das ist in der Regel das Desktop.
  816.  
  817.  
  818. FKEY
  819. ----
  820.  
  821. Syntax: FKEY [-e] Fnumber=text
  822.  
  823. Mit diesem Befehl kann einer der 10 Funktionstasten ein maximal 19 Zeichen 
  824. langer Text zugewiesen werden, der bei Betätigung der entsprechenden Taste
  825. dann ausgegeben wird. Beispiel:
  826.  
  827.   fkey F4=Hallo Welt
  828.  
  829. Die '-e' Option (execute) ermöglicht es, über Funktionstasten
  830. direkt Programme oder Batches auszuführen. Beispiel:
  831.  
  832.   fkey -e F10=gem uniterm
  833.  
  834.  
  835. FORMAT
  836. ------
  837.  
  838. Syntax: FORMAT [A:|B:]  [-s|-d|-dh] [-vvolumename]
  839.  
  840. Es wird eine Diskette in Laufwerk A: oder B: formatiert. Die '-s' Option
  841. formatiert im Single-Sided (360K) Format und die '-d' Option im 
  842. Double-Sided (720K) Format. Bei -dh wird die Diskette auf 1.44MB
  843. (Double sided, high density) formatiert, jedoch nur, wenn der ST über ein
  844. HD-Laufwerk verfügt und entsprechend modifiziert worden ist.
  845. Die -v Option ermöglicht es, der zu formatierenden Diskette den Namen
  846. 'volumename' zu geben. Dies ist aber nachträglich auch noch mit
  847. dem LABEL Befehl möglich.
  848.  
  849.  
  850. FRE
  851. ---
  852.  
  853. Syntax: FRE [drive]
  854.  
  855. Gibt den Namen, den verfügbaren sowie den bereits belegten Speicherplatz 
  856. des aktuellen Laufwerks aus.
  857. Es ist auch möglich eine Laufwerksspezifikation 'drive' anzugeben, z.B.:
  858.  
  859.   fre d:
  860.  
  861. würde Namen, verfügbaren und belegten Speicherplatz von Laufwerk 'D:'
  862. ausgeben.
  863.  
  864.  
  865. GEM
  866. ---
  867.  
  868. Syntax: GEM filename
  869.  
  870. Startet ein Programm, welches GEM-Routinen benutzt. Es werden also der
  871. Mauszeiger eingeschaltet und der Bildschirm gelöscht.  'filename'
  872. sollte hierbei eine ausführbare Binärdatei sein.
  873.  
  874. HEAD
  875. ----
  876.  
  877. Syntax: HEAD [-anzahl] [filename]
  878.  
  879. Gibt die ersten paar Zeilen einer Textdatei aus. Normalerweise werden die
  880. ersten 10 Zeilen ausgegeben. Mit dem Anzahl-Parameter kann jedoch eine
  881. beliebige Zeilenzahl eingestellt werden. Wird kein Dateiname angegeben,
  882. kann HEAD als Filter verwendet werden, d.h. er bezieht seine Eingabe durch
  883. eine Pipe von einem anderen Programm.
  884.  
  885. HELP
  886. ----
  887.  
  888. Syntax: HELP
  889.  
  890. Mit diesem Befehl wird eine Übersicht der CLI-Befehle ausgegeben.
  891. Ein Drücken der HELP Taste hat die gleiche Wirkung.
  892.  
  893.  
  894. HIDE
  895. ----
  896.  
  897. Syntax: HIDE [-s] {filename}
  898.  
  899. Bei den angegebenen Dateien werden die Hidden- und System-Attribute
  900. gesetzt. 
  901. Damit sind diese Dateien (in TOS-Versionen ab Blitter-TOS) vom Desktop aus 
  902. nicht mehr sichtbar. Damit diese Dateien vom DIR Befehl erkannt werden, muß 
  903. beim DIR Befehl die '-a' Option angegeben werden. 
  904. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab.
  905.  
  906.  
  907. HISTORY / !
  908. -----------
  909.  
  910. Syntax: HISTORY / !number / !string
  911.  
  912. Gibt die letzten 20 Befehle auf dem Bildschirm aus. Es ist nun möglich,
  913. einen der in der History gespeicherten Befehle anzuwählen. Und zwar:
  914.  
  915.  Cursortasten
  916.    Mit den Cursortasten `Pfeil-hoch' und `Pfeil-runter' werden die
  917.    im history-Puffer gespeicherten Befehle bei jedem Tastendruck in
  918.    der Kommandozeile dargestellt und können dann editiert oder einfach
  919.    noch einmal ausgeführt werden.
  920.  
  921.  direkte Wahl
  922.    Die direkte Wahl bietet folgende zwei Möglichkeiten:
  923.  
  924.    o !number wählt den Befehl an, der an der Stelle 'number'
  925.      im history-Puffer steht. Also beispielsweise      
  926.  
  927.           C:> history
  928.             1: dir
  929.             2: cp a:\hallo c:\
  930.             3: history
  931.           C:> !1
  932.  
  933.      würde den Befehl DIR ausführen.
  934.  
  935.    o !string wählt den ersten Befehl im im history-Puffer an, der
  936.      'string' als Teilwort enthählt. Um bei obigem Beispiel zu
  937.      bleiben, würde !cp den Befehl Nummer 2 im history-Puffer
  938.      ausführen, also
  939.  
  940.          cp a:\hallo c:\
  941.  
  942.  
  943. HSHAKE
  944. ------
  945.  
  946. Syntax: HSHAKE [XON|RTS|NONE]
  947.  
  948. HSHAKE stellt das Protokoll der seriellen Schlittstelle der Atari ein.
  949. Wird kein Parameter oder NONE angegeben, so wird das Handshake abgeschaltet,
  950. bei XON schaltet der CLI den Atari auf XON/XOFF-Protokoll um, und bei RTS
  951. auf RTS/CTS, was aber leider in älteren TOS-Versionen nicht funktioniert.
  952.  
  953.  
  954. IGNORE
  955. ------
  956.  
  957. Syntax: IGNORE command
  958.  
  959. Mit dem IGNORE-Befehl kann man erzwingen, daß ein Befehl von Disktte/Festplatte
  960. geladen wird, auch wenn bereits ein eingebauter Befehl gleichen Namens
  961. vorhanden ist.
  962.  
  963. ignore dir
  964.  
  965. würde bewirken, daß sich der CLI so verhält, als wäre der DIR-Befehl
  966. nicht eingebaut. Daraufhin sucht er dann die PATH-Variable nach einem
  967. Programm namens DIR.TTP, DIR.PRG usw. ab.
  968. Siehe dazu auch REVIVE.
  969.  
  970.  
  971. INVERT
  972. ------
  973.  
  974. Syntax: INVERT
  975.  
  976. Invertiert den Bildschirm, also weiße Buchstaben auf schwarzem Grund und 
  977. umgekehrt.
  978.  
  979.  
  980. LABEL
  981. -----
  982.  
  983. Syntax: LABEL volumename
  984.  
  985. Dem aktuellen Laufwerk wird der Name 'volumename' gegeben.
  986.  
  987.  
  988. LOCK
  989. ----
  990.  
  991. Syntax: LOCK [-s] {filename}
  992.  
  993. Bei der angegebenen Datei wird das 'read-only' Attribut gesetzt.
  994. Danach kann diese Datei nur noch gelesen, aber nicht mehr beschrieben werden.
  995. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab.
  996.  
  997.  
  998. LOGCNT
  999. ------
  1000.  
  1001. Syntax: LOGCNT
  1002.  
  1003. Normalerweise bricht der CLI nach 3 Login-Versuchen ab und kehrt zu dem
  1004. aufrufenden Programm zurück. Der LOGCNT (Continuous Login) bewirkt, daß
  1005. der Benutzer beliebig viele Versuche hat, sich zu identifizieren. Dadurch
  1006. wird auch bei Fehlversuchen nicht zum aufrufenden Programm zurückgekehrt.
  1007. Der CLI kann damit dazu dienen, den Computer `abzuschließen'; hierzu
  1008. wird der CLI z.B. so installiert, daß er nach dem Einschalten des Computers
  1009. immer ausgeführt wird und in 'autoexec.bat' der LOGCNT Befehl, gefolgt 
  1010. von LOGIN steht. Aber dann das Passwort nicht vergessen!
  1011.  
  1012.  
  1013. LOGIN
  1014. -----
  1015.  
  1016. Syntax: LOGIN
  1017.  
  1018. Mit dem LOGIN Befehl ist es möglich, mehreren Benutzern eigene CLI-Umgebungen
  1019. (also Environments) bereitzustellen.
  1020.  
  1021. Dabei wird jedem Benutzer Benutzername, Passwort, voller Name und ein Home
  1022. Directory zugewiesen. Diese Benutzerdaten werden in einer Datei 'PASSWD'
  1023. festgelegt. Der CLI sucht diese Datei in dem Directory, welches in der
  1024. Environmentvariable LOGIN angegeben ist. Bevor der Befehl LOGIN eingegeben
  1025. wird, sollte also diese Variable entsprechend gesetzt werden.
  1026.  
  1027. Nach Eingabe von LOGIN fordert der CLI zur Eingabe des Benutzernamen auf.
  1028. Ist der Benutzer in der PASSWD-Datei nicht eingetragen, so hat der Benutzer
  1029. drei Versuche einen gültigen Benutzernamen einzugeben. Ist dies nicht
  1030. geschehen, so wird der CLI beendet und zum aufrufenden Programm
  1031. zurückgekehrt.
  1032.  
  1033. Ist der Benutzer eingetragen, so wird nach dem Passwort gefragt. Ist kein
  1034. Passwort vorhanden, genügt Betätigung der <RETURN>-Taste. Wurde das
  1035. gültige Passwort eingegeben, so werden die Environmentvariablen USER und
  1036. HOME entsprechend gesetzt, in das entsprechende Home-Directory gewechselt und
  1037. dort die Datei 'LOGIN.BAT' ausgeführt. Außerdem wird die History
  1038. gelöscht. In der Datei 'LOGIN.BAT' kann sich damit jeder Benutzer seine
  1039. eigenen Voreinstellungen sichern.
  1040.  
  1041. Aufbau der PASSWD-Datei:
  1042.  
  1043.   user,password,uid,gid,username,home-directory[,default-shell] CR/LF
  1044.  
  1045. Ein neuer Usereintrag könnte dann etwa so aussehen:
  1046.  
  1047. SuperUser,,0,0,Peter Meier,e:\super\,c:\command.prg
  1048.  
  1049. Beim 'user', also dem Namen unter dem sich ein Benutzer eingelogged
  1050. hat und welcher in der Environmentvariablen USER gespeichert wird, wird
  1051. Groß - und Kleinbuchstaben unterschieden, ebenso
  1052. beim 'password'. Das Passwort wird verschlüsselt abgespeichert und kann
  1053. nur mit dem PASSWD-Befehl geändert werden.
  1054. 'uid' und 'gid' sind ganze Zahlen und werden vom CLI ignoriert, müssen aber
  1055. aus Kompatibilitätsgründen vorhanden sein.
  1056. 'username' ist der volle Benutzername, der in der Environmentvariablen
  1057. USERNAME gespeichert wird. Die Environmentvariablen HOME wird mit 
  1058. 'home-directory' belegt.
  1059. Soll nach dem login nicht der CLI gestartet werden, sondern eine andere Shell
  1060. oder ein anderes Programm, so kann noch optional 'default-shell' angegeben
  1061. werden.
  1062.  
  1063.  
  1064. LS
  1065. --
  1066.  
  1067. Syntax: LS [-aepl] [pathname]
  1068.  
  1069. Gleiche Funktion wie DIR, nur mit Voreinstellung Option '-w' gesetzt.
  1070.  
  1071.  
  1072. LTTY
  1073. ----
  1074.  
  1075. Syntax: LTTY
  1076.  
  1077. Der Befehl LTTY (lock TTY) ermöglicht eine Verriegelung der Tastatur.
  1078. Der Benutzer wird nach einem Passwort gefragt und muß dieses dann zur
  1079. Sicherheit noch einmal eingeben. Die Tastatur läßt sich nun nur noch
  1080. durch Eingabe dieses Passwortes oder natürlich durch einen Reset des
  1081. Rechners wieder entriegeln.
  1082.  
  1083.  
  1084. MAN
  1085. ---
  1086.  
  1087. Syntax: MAN [level] command
  1088.  
  1089. Es wird die Datei 'command.*' aus einem der Directories, welche in der 
  1090. Environmentvariablen MAN gespeichert sind, ausgegeben. Man kann sich so also
  1091. ein oder mehrere Directories mit Hilfstexten (ASCII-codiert) anlegen,
  1092. die jeweils die Endung '.MAN' tragen können.
  1093. Wird dabei die optionale Zahl `level' angegeben, so sucht der CLI nach einer
  1094. Extension, die mit dieser Zahl beginnt. Dabei darf sich `level' im Bereich
  1095. Null bis Sieben bewegen. So könnte die Beschreibung für den C-Befehl
  1096. `strcpy()' etwa `STRCPY.3C' heißen. Dabei steht die 3 für Level 3 und
  1097. das `C' für die Programmiersprache C.
  1098.  
  1099. Man könnte also den Utilities und anderen Programmen Level 1, den
  1100. Betriebssystemaufrufen den Level 2 und Bibliotheksfunktionen verschiedener
  1101. Programmiersprachen den Level 3 zuordnen, wobei der drei noch ein Kennbuchstabe
  1102. für die Programmiersprache nachgestellt wird.
  1103.  
  1104. Manchmal kann es sinnvoll sein, mehrere Hilfstexte in einer Datei abzulegen,
  1105. die aber unter verschiedenen Namen angesprochen werden soll. So könnte man
  1106. alle Stringbefehle in einer Datei 'STRING.3C' ablegen. Nun soll diese Datei
  1107. auch unter den Namen 'strcpy', 'strcmp', 'strcat' u.s.w. angesprochen werden.
  1108. Dazu wird eine Datei 'MAN.IDX' im Hilfstextdirectory angelegt, die pro Zeile
  1109. einen Namen einer Datei zuordnet. Dabei beginnt eine Zeile mit dem Namen,
  1110. unter dem die Datei angesprochen werden soll. Dann folgen ein oder
  1111. mehrere Leerzeichen und schließlich der Dateiname.
  1112. Die Datei könnte also z.B. so aussehen:
  1113.  
  1114. strcpy          string
  1115. strcmp          string
  1116. strcat          string
  1117. fopen           gemfile
  1118. fcreate         gemfile
  1119.  
  1120. Eine solche Indexdatei kann in jedem der in der MAN Environmentvariablen
  1121. abgelegten Directories angelegt werden. Dabei bezieht sich jeder Dateiname
  1122. auf das jeweilige Directory!
  1123.  
  1124. Normalerweise wird die Textdatei durch den internen MORE Befehl ausgegeben.
  1125. Es kann dazu jedoch auch z.B. ein Programm benutzt werden. Dazu wird in
  1126. der PAGER-Variablen der Name des Befehls abgelegt, der statt MORE die
  1127. Datei ausgeben soll.
  1128.  
  1129. MFREE
  1130. -----
  1131.  
  1132. Syntax: MFREE
  1133.  
  1134. Dieser Befehl gibt den aktuell verfügbaren Hauptspeicherplatz aus.
  1135.  
  1136.  
  1137. MKDIR
  1138. -----
  1139.  
  1140. Syntax: MKDIR dirname
  1141.  
  1142. Um einen neuen Ordner 'dirname' anzulegen verwendet man der MKDIR Befehl.
  1143.  
  1144.   mkdir TEST
  1145.  
  1146. legt einen Ordner mit Namen TEST an.
  1147.  
  1148.  
  1149.  
  1150. MORE
  1151. ----
  1152.  
  1153. Syntax: MORE {filename}
  1154.  
  1155. MORE ist ein Ausgabebefehl, der Dateien seitenweise auf dem Bildschirm 
  1156. anzeigt, und ausgibt, wieviel Prozent der Datei schon ausgegeben sind.
  1157. Mit der Taste 'b' kann zurückgeblättert werden, jede andere Taste blättert
  1158. vorwärts und mit der Taste 'n' wird, wenn mehrere Dateien
  1159. ausgegeben werden sollen, die aktuelle Ausgabe abgebrochen und
  1160. mit der nächsten Datei fortgefahren. Mit Control-C oder 'q' kann jederzeit
  1161. die Ausgabe abgebrochen werden.
  1162. Wird kein Dateiname angegeben, so liest MORE von 'stdin', d.h. es kann
  1163. mit einer Pipe die Ausgabe eines Programmes als Eingabe von MORE
  1164. verwendet werden.
  1165.  
  1166.  
  1167. MOVE oder MV
  1168. ------------
  1169.  
  1170. Syntax: MOVE [-ns] pathname [pathname] oder
  1171.         MV   [-ns] pathname [pathname]
  1172.  
  1173. Bewirkt exakt dasselbe wie COPY, jedoch wird die Quelldatei nach dem 
  1174. Kopiervorgang gelöscht. Die Datei(en) werden also verschoben. Die Option
  1175. `-s' (silent) bewirkt, daß dieser Vorgang nicht auf dem Schirm
  1176. mitprotokolliert wird.
  1177.  
  1178.  
  1179.  
  1180. MS
  1181. --
  1182. Syntax: MS [ON|OFF]
  1183.  
  1184. MS ON aktiviert den Mauszeiger. MS OFF ist das Komplement zu MS ON.
  1185.  
  1186.  
  1187. PASSWD
  1188. ------
  1189.  
  1190. Syntax: PASSWD
  1191.  
  1192. Mit diesem Befehl kann man sein Passwort ändern. Die Benutzerführung ist 
  1193. selbsterklärend.
  1194.  
  1195.  
  1196. PATH oder PWD
  1197. -------------
  1198.  
  1199. Syntax: PATH oder PWD
  1200.  
  1201. Mit diesem Befehl wird das aktuelle Verzeichnis ausgegeben.
  1202.  
  1203.  
  1204. POPD
  1205. ----
  1206.  
  1207. Syntax: POPD
  1208.  
  1209. Ein Pfad wird vom Pfadstapel geholt und zum aktuellen Pfad gemacht.
  1210. Siehe hierzu auch Abschnitt 'PUSHD'.
  1211.  
  1212.  
  1213. PRINTENV
  1214. --------
  1215.  
  1216. Syntax: PRINTENV
  1217.  
  1218. Gibt die Namen aller Environmentvariablen und ihren Inhalt auf dem Bildschirm 
  1219. aus.
  1220.  
  1221.  
  1222. PROMPT
  1223. ------
  1224.  
  1225. Syntax: PROMPT [string]
  1226.  
  1227. Nach dem Starten meldet sich der CLI normalerweise mit einem Prompt, der
  1228. aus dem aktuellen Verzeichnis, und einem `>'-Zeichen aufgebaut ist
  1229. (MS-DOS lässt grüssen). Mit dem PROMPT-Befehl kann nun dieser Prompt
  1230. umdefiniert werden. Der angegebene 'string' wird unverändert als Prompt
  1231. ausgegeben, bis auf einige speziellen Zeichenkombinationen, die in Tabelle 2
  1232. aufgeführt sind.
  1233.  
  1234.  
  1235.          &n    | aktuelles Laufwerk
  1236.          &p    | aktueller Pfad
  1237.          &d    | Datum
  1238.          &t    | Zeit
  1239.          &v    | Version
  1240.          &g    | >
  1241.          &l    | <
  1242.          &q    | =
  1243.          &h    | Backspace
  1244.          &_    | CR/LF
  1245.          &e    | Escape
  1246.          &&    | Ampersand-zeichen
  1247.          &m    | Dollar (MONEY)-Zeichen
  1248.          &u    | Pipe-Zeichen ('|')
  1249.      &!    | aktuelle Zeilennummer
  1250.  
  1251.                 Tabelle 2: Sonderzeichen im Prompt
  1252.  
  1253.  
  1254. Einige dieser Zeichen könnten nicht direkt eingegeben werden oder hätten für 
  1255. den CLI eine besondere Bedeutung, so würde das '>' als Umlenkung
  1256. erkannt werden. Wenn daher im Prompt das '>' erscheinen soll, so wird an
  1257. seiner Stelle '&g' im Promptstring eingegeben.
  1258. Mit
  1259.  
  1260.   prompt &p&g
  1261.  
  1262. wird immer der aktuelle Pfad, gefolgt vom '>' Zeichen als Prompt
  1263. ausgegeben.
  1264.  
  1265. PROMPT ohne Argument stellt wieder den default Prompt ein, d.h. so, wie er
  1266. nach dem Starten war.
  1267.  
  1268. PUSHD
  1269. -----
  1270.  
  1271. Syntax: PUSHD [pfadname]
  1272.  
  1273. Befördert den angegebenen Pfad auf den Pfadstapel.
  1274. Der Pfadstapel faßt max. 16 Pfade. Wird PUSHD ohne
  1275. Argument aufgerufen, so wird der aktuelle Pfad abgelegt.
  1276.  
  1277.  
  1278. RENAME oder REN
  1279. ---------------
  1280.  
  1281. Syntax: RENAME oder REN [-n] pathname filename
  1282.  
  1283. Mit diesem Befehl kann eine oder mehrere Dateien umbenannt werden. Ist schon 
  1284. eine Datei gleichen Namens vorhanden, so wird gefragt, ob diese gelöscht 
  1285. werden soll, oder ob die Quelldatei nicht umbenannt werden soll.
  1286. Beispiel:
  1287.  
  1288.   rename *.txt *.doc
  1289.  
  1290. ändert die Endungen aller '.TXT' Dateien im aktuellen Verzeichnis in 
  1291. '.DOC' um.
  1292.  
  1293. Mit der Option '-n' (no query) wird die Nachfrage abgeschaltet, ob eine
  1294. im Zielpfad schon vorhandene Datei gleichen Namens gelöscht werden soll
  1295. oder nicht. (destructive rename)
  1296.  
  1297.  
  1298. REVIVE
  1299. ------
  1300.  
  1301. Syntax: REVIVE command
  1302.  
  1303. Mit diesem Befehl kann ein Befehl, der mit dem IGNORE-Befehl abgeschaltet
  1304. wurde, wieder zum Leben erweckt werden.
  1305.  
  1306.  
  1307. RM
  1308. --
  1309.  
  1310. Syntax: RM [-qs] filename [filename]
  1311.  
  1312. Siehe dazu DEL.
  1313.  
  1314. RMDIR
  1315. -----
  1316.  
  1317. Syntax: RMDIR [-r|-a] pathname
  1318.  
  1319. Mit diesem Befehl kann ein Ordner gelöscht werden. Dabei muß der Ordner mit 
  1320. komplettem Pfad angegeben werden.
  1321. Der Order muß im Normalfall leer sein. Ist sich der Benutzer sicher, daß
  1322. ein kompletter Ordner gelöscht werden soll, so kann er unter Angabe der
  1323. Option '-r' oder '-a' jeden beliebigen Ordner löschen.
  1324.  
  1325. SETENV
  1326. ------
  1327.  
  1328. Syntax: SETENV varname [string]
  1329.  
  1330. Mit diesem Befehl kann einer Environmentvariablen ein neuer Inhalt,
  1331. 'string', zugewiesen werden. Name und Inhalt sind dabei entweder durch ein 
  1332. Leerzeichen oder ein '='-Zeichen getrennt. Man kann natürlich auch ohne
  1333. SETENV einer Variablen einen Inhalt zuweisen. 
  1334.  
  1335.   setenv TEMP Hallo
  1336.  
  1337. und
  1338.  
  1339.   TEMP=Hallo
  1340.  
  1341. sind vollkommen gleichwertig. Wird SETENV ohne Parameter aufgerufen, so 
  1342. werden alle vorhandenen Variablen ausgegeben (genau wie beim PRINTENV-Befehl).
  1343.  
  1344.  
  1345. SLEEP
  1346. -----
  1347.  
  1348. Syntax: SLEEP
  1349.  
  1350. Mit diesem Befehl lässt sich der Bildschirm dunkelschalten. Dies ist sinnvoll,
  1351. wenn man die Arbeit mit dem CLI für längere Zeit unterbricht, aber den
  1352. Rechner nicht abschalten möchte. Ein zuvor eingegebener SLEEP Befehl schont
  1353. dann die Bildröhre des Monitors. Der Schirm wird durch Betätigen einer
  1354. beliebigen Taste wieder eingeschaltet.
  1355.  
  1356.  
  1357. STEP
  1358. ----
  1359.  
  1360. Syntax: STEP step_rate
  1361.  
  1362. Der STEP-Befehl stellt eine neue Steprate für die beiden Laufwerke A:
  1363. und B: ein. Erlaubte Werte für step_rate sind: 2,3,6 und 12. Die Angabe
  1364. erfolgt in Millisekunden.
  1365.  
  1366. TEE
  1367. ---
  1368. Syntax: TEE [-a] filename
  1369.  
  1370. Der Inhalt einer Pipe wird in eine Datei 'filename' abgezweigt, die
  1371. Funktion der Pipe dadurch nicht beeinträchtigt. Mit der '-a' Option wird
  1372. an eine bestehende Datei angehängt.
  1373.  
  1374. TERM
  1375. ----
  1376.  
  1377. Syntax: TERM
  1378.  
  1379. TERM aktiviert den Terminalmodus. Dieser entspricht dem des von Atari
  1380. gelieferten Emulator-ACC's, welches einen einfachen VT-52 Emulator zur
  1381. Kommunikation über die serielle Schnittstelle darstellt.
  1382. Alle von der Tastatur eingegebenen Zeichen werden also an die serielle 
  1383. Schnittstelle gesendet. Ggf. muß die Baudrate mit dem BAUD-Befehl
  1384. eingestellt werden. Nach dem Einschalten befindet sich der Rechner
  1385. normalerweise im 9600 Baud Modus. Verlassen wird der Terminalmodus mit 
  1386. der <HELP> oder <UNDO> Taste. 
  1387. Bei Remotebetrieb ist der TERM-Befehl nicht sinnvoll, und ist daher
  1388. deaktiviert.
  1389.  
  1390. TIME
  1391. ----
  1392.  
  1393. Syntax: TIME [-s]
  1394.  
  1395. Der TIME-Befehl dient dazu, die Systemzeit abzufragen oder zu stellen. Nach 
  1396. Eingabe des Befehls wird die aktuelle Zeit ausgegeben. Dann kann eine neue Zeit 
  1397. eingegeben werden. Ist die eingegebene Zeit ungültig oder wird einfach nur 
  1398. <RETURN> eingegeben, so bleibt die ursprüngliche Zeit unverändert.
  1399. Bei Angabe der '-s' Option (set) wird die aktuelle Zeit in die
  1400. Environmentvariable TIME geschrieben.
  1401.  
  1402.  
  1403. TOUCH
  1404. -----
  1405.  
  1406. Syntax: TOUCH [-s] {filename}
  1407.  
  1408. TOUCH aktualisiert das Dateidatum also, das Erstellungsdatum einer Datei.
  1409. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab.
  1410.  
  1411.  
  1412. TYPE
  1413. ----
  1414.  
  1415. Syntax: TYPE filename
  1416.  
  1417. Gibt die angegebene Datei aus. Die Ausgabe kann z.B. in eine Datei
  1418. umgelenkt werden (wie bei den meisten anderen Befehlen auch).
  1419.  
  1420.  
  1421. UNALIAS
  1422. -------
  1423.  
  1424. Syntax: UNALIAS name
  1425.  
  1426. Ein Eintrag wird aus der ALIAS-Liste entfernt. Bewirkt dasselbe wie
  1427. ALIAS mit der `d'-Option.
  1428.  
  1429.  
  1430. UNHIDE
  1431. ------
  1432.  
  1433. Syntax: UNHIDE [-s] {filename}
  1434.  
  1435. Bei den angegebenen Dateien werden die Attribute 'hidden' und 'system'
  1436. gelöscht. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab.
  1437.  
  1438.  
  1439. UNLOCK
  1440. ------
  1441.  
  1442. Syntax: UNLOCK [-s] {filename}
  1443.  
  1444. Bei den angegebenen Dateien wird das 'read-only' Attribut gelöscht.
  1445. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab.
  1446.  
  1447.  
  1448. VERSION oder VER
  1449. ----------------
  1450.  
  1451. Syntax: VERSION oder VER
  1452.  
  1453. Gibt die Versionsnummer des CLI und TOS-ROMs aus.
  1454.  
  1455.  
  1456. WAIT
  1457. ----
  1458.  
  1459. Syntax: WAIT [-s|-t time|-d date]
  1460.  
  1461. Dieser Befehl gibt eine englische Meldung aus und wartet auf ein <Return>.
  1462. WAIT wird sinnvollerweise nur in Batchdateien verwendet. Ist die englische
  1463. Meldung in einer Batchabarbeitung störend, so kann diese auch mit der
  1464. '-s' Option (silent) unterdrückt werden.
  1465. Bei Angabe der '-t' bzw. '-d' Option wartet der CLI bis zur angegebenen
  1466. Uhrzeit bzw. zum angegebenen Datum. Das Format ist dasselbe wie bei den
  1467. Befehlen TIME und DATE.
  1468.  
  1469.  
  1470. WC
  1471. --
  1472.  
  1473. Syntax: WC [filename]
  1474.  
  1475. Mit WC (Word Count) werden die Zeichen, Zeilen und Worte einer Textdatei 
  1476. gezählt. Wird kein Dateiname angegeben, bezieht WC seine Eingabe von
  1477. 'stdin'. Damit kann WC seine Eingabe durch eine Pipe von einem anderen
  1478. Programm beziehen.
  1479.  
  1480.  
  1481.  
  1482.